gtk-demo: Move Theming to Theming/Style Classes
authorMatthias Clasen <mclasen@redhat.com>
Sat, 26 May 2012 00:39:59 +0000 (20:39 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 26 May 2012 00:40:47 +0000 (20:40 -0400)
And make the title :: parsing work for nested titles too,
so this works.

demos/gtk-demo/Makefile.am
demos/gtk-demo/main.c
demos/gtk-demo/theming.c [deleted file]
demos/gtk-demo/theming_style_classes.c [new file with mode: 0644]

index 0c4da0f2fecec4eb9b8d1d34ca89ad7e9a83e289..7e90f2d217c38982fd0b4b9334987e33255009c5 100644 (file)
@@ -43,7 +43,7 @@ demos =                                               \
        stock_browser.c                         \
        textview.c                              \
        textscroll.c                            \
-       theming.c                               \
+       theming_style_classes.c                 \
        toolpalette.c                           \
        transparent.c                           \
        tree_store.c                            \
index df2a6c635146dfc071a4c5911dcc9594ccc0c2c8..ce362a288b6f089ac5e06dc2f982bb213e2e3d31 100644 (file)
@@ -623,12 +623,18 @@ load_file (const gchar *filename)
           while (*p == '/' || *p == '*' || g_ascii_isspace (*p))
             p++;
           r = p;
-          while (*r != '/' && *r != ':' && *r != '\0')
-            r++;
-          if (*r == '/')
-            p = r + 1;
-          if (r[0] == ':' && r[1] == ':')
-            *r = '\0';
+          while (*r != '\0')
+            {
+              while (*r != '/' && *r != ':' && *r != '\0')
+                r++;
+              if (*r == '/')
+                {
+                  r++;
+                  p = r;
+                }
+              if (r[0] == ':' && r[1] == ':')
+                *r = '\0';
+            }
           q = p + strlen (p);
           while (q > p && g_ascii_isspace (*(q - 1)))
             q--;
diff --git a/demos/gtk-demo/theming.c b/demos/gtk-demo/theming.c
deleted file mode 100644 (file)
index a74ec6c..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Theming :: theming.ui
- *
- * GTK+ uses CSS for theming. Style classes can be associated
- * with widgets to inform the theme about intended rendering.
- *
- * This demo shows some common examples where theming features
- * of GTK+ are used for certain effects: primary toolbars,
- * inline toolbars and linked buttons.
- */
-
-#include <gtk/gtk.h>
-#include "demo-common.h"
-
-static GtkWidget *window = NULL;
-
-GtkWidget *
-do_theming (GtkWidget *do_widget)
-{
-  GtkWidget *grid;
-  GtkBuilder *builder;
-  gchar *filename;
-  GError *err = NULL;
-
-  if (!window)
-    {
-      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-      gtk_window_set_screen (GTK_WINDOW (window),
-                             gtk_widget_get_screen (do_widget));
-      gtk_window_set_title (GTK_WINDOW (window), "Theming");
-      gtk_container_set_border_width (GTK_CONTAINER (window), 12);
-      g_signal_connect (window, "destroy",
-                        G_CALLBACK (gtk_widget_destroyed), &window);
-
-      builder = gtk_builder_new ();
-      filename = demo_find_file ("theming.ui", NULL);
-      gtk_builder_add_from_file (builder, filename, &err);
-      g_free (filename);
-      if (err)
-        {
-          g_error ("ERROR: %s\n", err->message);
-          return NULL;
-        }
-
-      grid = (GtkWidget *)gtk_builder_get_object (builder, "grid");
-      gtk_widget_show_all (grid);
-      gtk_container_add (GTK_CONTAINER (window), grid);
-      g_object_unref (builder);
-    }
-
-  if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show (window);
-    }
-  else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
-
-  return window;
-}
diff --git a/demos/gtk-demo/theming_style_classes.c b/demos/gtk-demo/theming_style_classes.c
new file mode 100644 (file)
index 0000000..b00e4dc
--- /dev/null
@@ -0,0 +1,61 @@
+/* Theming/Style Classes :: theming.ui
+ *
+ * GTK+ uses CSS for theming. Style classes can be associated
+ * with widgets to inform the theme about intended rendering.
+ *
+ * This demo shows some common examples where theming features
+ * of GTK+ are used for certain effects: primary toolbars,
+ * inline toolbars and linked buttons.
+ */
+
+#include <gtk/gtk.h>
+#include "demo-common.h"
+
+static GtkWidget *window = NULL;
+
+GtkWidget *
+do_theming_style_classes (GtkWidget *do_widget)
+{
+  GtkWidget *grid;
+  GtkBuilder *builder;
+  gchar *filename;
+  GError *err = NULL;
+
+  if (!window)
+    {
+      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+      gtk_window_set_screen (GTK_WINDOW (window),
+                             gtk_widget_get_screen (do_widget));
+      gtk_window_set_title (GTK_WINDOW (window), "Theming");
+      gtk_container_set_border_width (GTK_CONTAINER (window), 12);
+      g_signal_connect (window, "destroy",
+                        G_CALLBACK (gtk_widget_destroyed), &window);
+
+      builder = gtk_builder_new ();
+      filename = demo_find_file ("theming.ui", NULL);
+      gtk_builder_add_from_file (builder, filename, &err);
+      g_free (filename);
+      if (err)
+        {
+          g_error ("ERROR: %s\n", err->message);
+          return NULL;
+        }
+
+      grid = (GtkWidget *)gtk_builder_get_object (builder, "grid");
+      gtk_widget_show_all (grid);
+      gtk_container_add (GTK_CONTAINER (window), grid);
+      g_object_unref (builder);
+    }
+
+  if (!gtk_widget_get_visible (window))
+    {
+      gtk_widget_show (window);
+    }
+  else
+    {
+      gtk_widget_destroy (window);
+      window = NULL;
+    }
+
+  return window;
+}